package com.turing.post.account.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;


/**
 * 子帐户明细接口
 * @author yxb
 *
 */
@Remote
@Local
public interface SubAccountDetailDao {
	/**
	 * 插入子帐户记帐明细记录
	 * 
	 * @param sad	子帐户明细对象
	 * @throws PCPSApplicationException 异常信息
	 */
	public void insert(SubAccountDetail sad) throws PCPSApplicationException;
	
	/**
	 * 子账户明细列表
	 * @param masterAccNo	主帐号
	 * @param startTime	交易时间开始时间
	 * @param endTime 交易时间结束时间
	 * @param page	页码
	 * @return	子账户明细对象列表
	 */
	public List<SubAccountDetail> getSubAccDetailListByCondition(
			PCPSWebInput webInput, String cardNo, BigInteger subAccNo,
			String startTime, String endTime, Integer page);
	/**
	 * 子账户明细总数
	 * 
	 * @param masterAccNo
	 *            主帐号
	 * @param startTime
	 *            交易时间开始时间
	 * @param endTime
	 *            交易时间结束时间
	 * @return 总数
	 */
	public BigInteger getSubAccDetailListTotal(PCPSWebInput webInput,
			String cardNo, BigInteger subAccNo, String startTime, String endTime);
	/**
	 * 根据子账号和帐户子系统流水号获取子账户明细
	 * @param webInput
	 * @param subAccno
	 * @param accSeqNo
	 * @return
	 */
	public SubAccountDetail getSubAccountDetailByAccseqno(
			PCPSWebInput webInput, String subAccno, String accSeqNo);
}
